package ar.com.sectorwine.dto;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.stereotype.Repository;

import ar.com.sectorwine.entities.Empresa;

/**
 * @author Ismael
 * 
 */
@Repository
public class EmpresasDTOMapper {

	/**
	 * Obtiene y devuelve la entidad relacionada al DTO pasado como parametro
	 * @param empresaDTO EmpresaDTO 
	 * @return Empresa 
	 **/
	public Empresa obtenerObjetoDelDominioDesdeDTO(EmpresaDTO empresaDTO) {
		Empresa newEmpresa = new Empresa();

		newEmpresa.setId(empresaDTO.getId());
		newEmpresa.setRazonSocial(empresaDTO.getRazonSocial());
		newEmpresa.setId(empresaDTO.getId());
		newEmpresa.setCorreoElectronico(empresaDTO.getCorreoElectronico());
		newEmpresa.setCuit(empresaDTO.getCuit());
		newEmpresa.setActividadPrincipal(empresaDTO.getActividadPrincipal());
		newEmpresa.setActividadSecundaria(empresaDTO.getActividadSecundaria());
		newEmpresa.setDomicilioFiscal(empresaDTO.getDomicilioFiscal());
		newEmpresa.setDomicilioReal(empresaDTO.getDomicilioReal());
		newEmpresa.setDescripcion(empresaDTO.getDescripcion());
		newEmpresa.setTelefono(empresaDTO.getTelefono());
		newEmpresa.setSitioWeb(empresaDTO.getSitioWeb());

		SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
		try {
			newEmpresa.setFechaCreacion(sdf.parse(empresaDTO.getFechaCreacion()));
		} catch (ParseException e) {
			newEmpresa.setFechaCreacion(new Date());
			e.printStackTrace();
		}
		return newEmpresa;
	}
	
	public List<EmpresaDTO> obtenerDTODesdeObjetoDelDominio(List<Empresa> empresas) {

		List<EmpresaDTO> result = new ArrayList<EmpresaDTO>() ;
		for(Empresa u: empresas){
			result.add(obtenerDTODesdeObjetoDelDominio(u));
		}
		return result;

	}

	public EmpresaDTO obtenerDTODesdeObjetoDelDominio(Empresa empresa) {

		EmpresaDTO empresaABMDTO = new EmpresaDTO();
		empresaABMDTO.setActividadPrincipal(empresa.getActividadPrincipal());
		empresaABMDTO.setActividadSecundaria(empresa.getActividadSecundaria());
		empresaABMDTO.setId(empresa.getId());
		empresaABMDTO.setRazonSocial(empresa.getRazonSocial());
		empresaABMDTO.setCorreoElectronico(empresa.getCorreoElectronico());
		empresaABMDTO.setCuit(empresa.getCuit());
		empresaABMDTO.setDescripcion(empresa.getDescripcion());
		empresaABMDTO.setDomicilioFiscal(empresa.getDomicilioFiscal());
		empresaABMDTO.setDomicilioReal(empresa.getDomicilioReal());
		empresaABMDTO.setSitioWeb(empresa.getSitioWeb());
		empresaABMDTO.setTelefono(empresa.getTelefono());
		empresaABMDTO.setUrlAvatar(empresa.getUrlAvatar());

		return empresaABMDTO;
	}
}
